package com.tedu.api.ee;

import org.junit.Test;

/**
 * Java有一套完善异常处理操作
 * 程序员对应出现什么问题，就会有对应异常【对象】提供出来，错误也是对象
 * <p>
 * Throwable顶级超类--抛出错误：
 * 子类：Exception对象：程序级别的错误（经常遇见）
 * 编译期--FileOutputStream(编写代码同时，下方波浪线)
 * 处理方式1：抛出异常：不管什么错误，抛出方法外
 * 2：捕获异常：抓到异常，记录异常错误信息
 * 检查异常：通常有编译器检查出来，存在异常类，抛出，捕获！
 * <p>
 * <p>
 * 运行期--控制台(IDE开发工具控制台，显示出红色，异常类名字)
 * 非检查异常：RuntimeException(认为所有异常来自与RuntimeException)
 * 所有异常都是RuntimeException的子类
 * 子类：Error对象：描述系统级别的错误（不常见）
 * 测试：程序挂了？  利用字符串不断拼接--Error
 * String str="字符串";  直接写出字符串---存常量池
 */
public class EE {
    @Test
    public void testError() {
        //Error级别错误
        String name = "市委";
        for (int i = 0; i < 9999L; i++) {
            name = name + "1";
        }
    }
    @Test
    public  void testException(){
        String s="";
        //StringIndexOutOfBoundsException异常--产生原因：字符串下不表越界异常
        System.out.println(s.charAt(0));
    }

}
